/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package State.ex2;

import State.Carte;

/**
 *   Exécution avec différent test du distributeur codé
 *   avec un découpage des états
 * @author David
 */
public class main {

    public static void main(String[] args) {
        
       Distributeur distrib = new State.ex2.Distributeur();
       //entrer code sans carte
        distrib.entrerCode(555);
        //retire espece sans carte deux fois de suite
        distrib.retirerEspece(50);
        distrib.retirerEspece(50);
        //retirer la carte sans carte ds le distrib
        distrib.retirerCarte();
        //code sans carte
        distrib.entrerCode(555);
        //retirer carte sans carte
        distrib.retirerCarte();
        distrib.retirerEspece(50);
        //insertion carte
        distrib.insererCarte(new Carte(555));
        //test insertion deuxieme carte
        distrib.insererCarte(new Carte(565));
        // test deux code faux
        distrib.entrerCode(565);
        distrib.entrerCode(568);
        //code bon
        distrib.entrerCode(555);
        // re rentrer son code
        distrib.entrerCode(555);
        //simple retrait
        distrib.retirerEspece(50);
        // retrait de la carte
        distrib.retirerCarte();
        // test deux opération sans carte
        distrib.entrerCode(565);
        distrib.retirerEspece(50);
        //insertion nouvelle carte avec code correcte
        distrib.insererCarte(new Carte(565));
        distrib.entrerCode(565);
        //simple retrait d'argent
        distrib.retirerEspece(500);
        //retrait impossible
        distrib.retirerEspece(500);
        // retrait du stock total du distributeur => carte éjectée
        distrib.retirerEspece(450);
        // vérification carte bien éjectée
        distrib.retirerEspece(50);
        distrib.retirerCarte();
        // remplissage de monaie
        distrib.remplirDistrib(1000);
        // retrait complet
        distrib.retirerEspece(1000);
        //nouvelle carte
        distrib.insererCarte(new Carte(565));
        // test code faux 3 fois de suite
        distrib.entrerCode(555);
        distrib.entrerCode(555);
        distrib.entrerCode(555);
        //impossiblde de rentrer le code car carte avalée
        distrib.entrerCode(555);
        distrib.insererCarte(new Carte(555));
        distrib.retirerEspece(50);
        distrib.entrerCode(555);
        distrib.entrerCode(555);
        distrib.retirerEspece(50);
    }
}
